package com.yc.cloud.sms.response;

import lombok.Data;
import lombok.Builder;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

/**
 * 短信发送响应对象
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SmsResponse {
    /**
     * 是否发送成功
     */
    private boolean success;

    /**
     * 错误码
     */
    private String errorCode;

    /**
     * 错误信息
     */
    private String errorMessage;

    /**
     * 短信供应商返回的原始响应信息
     */
    private String rawResponse;

    /**
     * 短信发送ID（如果有）
     */
    private String messageId;

    /**
     * 创建成功响应
     */
    public static SmsResponse success(String messageId) {
        return SmsResponse.builder()
                .success(true)
                .messageId(messageId)
                .build();
    }

    /**
     * 创建失败响应
     */
    public static SmsResponse failure(String errorCode, String errorMessage) {
        return SmsResponse.builder()
                .success(false)
                .errorCode(errorCode)
                .errorMessage(errorMessage)
                .build();
    }

    /**
     * 创建失败响应（带原始响应）
     */
    public static SmsResponse failure(String errorCode, String errorMessage, String rawResponse) {
        return SmsResponse.builder()
                .success(false)
                .errorCode(errorCode)
                .errorMessage(errorMessage)
                .rawResponse(rawResponse)
                .build();
    }
} 